/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.going.logica;

import co.com.going.modelo.Escuela;
import co.com.going.persistencia.IDAOescuela;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author Olguita
 */
@Stateless
public class LogicaEscuela implements ILogicaEscuela {


    @EJB
    private IDAOescuela iDAOescuela;
    
    @Override
    public void crearEscuela(Escuela escuela) throws Exception {
       
        if(escuela==null){
        
            throw new Exception("La Escuela no tiene Informacion");
        
        }
        
        Escuela objEscuela= iDAOescuela.buscarEscuelaPorNombre(escuela.getNombreEscuela(), escuela.getCodCiudadEscuela().getCodCiudad());
        
        if(objEscuela!=null){
        
        
            throw new Exception("La Escuela ya Existe");
        
        }
        
       Escuela objEscuela2=iDAOescuela.buscarEscuelaPorID(escuela.getCodEscuela());
       
       if(objEscuela2!=null){
        
        
            throw new Exception("El codigo de la Escuela proporcionado ya se encuentraen Uso");
         
        }
        
        
        if(escuela.getNombreEscuela()==null||escuela.getNombreEscuela().equals("")){
            
            throw new Exception("El Nombre no puede ser Vacio");
            
        }
        
         if(escuela.getCodEscuela()==null||escuela.getCodEscuela()==0){
            
            throw new Exception("Debe de Proporcionarse un codigo para identificar la Escuela");
            
        }
         
         if(escuela.getCodCiudadEscuela().getCodCiudad()==null||escuela.getCodCiudadEscuela().getCodCiudad()==0){
            
            throw new Exception("debe de proporcionarse una Ciudad a la que pertenece la Escuela");
            
        }
         
         iDAOescuela.crearEscuela(escuela);
        
        
    }

    @Override
    public void eliminarEscuela(Escuela escuela) throws Exception {
        
        if(escuela==null){
        
            throw new Exception("La Escuela no tiene Informacion");
        
        }
        
        Escuela objEscuela= iDAOescuela.buscarEscuelaPorNombre(escuela.getNombreEscuela(), escuela.getCodCiudadEscuela().getCodCiudad());
        
        if(objEscuela==null){
       
        
            throw new Exception("La Escuela No Existe");
        
        }
        
        iDAOescuela.eliminarEscuela(objEscuela);
        
    }

    @Override
    public void modificarEscuela(Escuela escuela) throws Exception {
        
        if(escuela==null){
        
            throw new Exception("La Escuela no tiene Informacion");
        
        }
        
        Escuela objEscuela= iDAOescuela.buscarEscuelaPorNombre(escuela.getNombreEscuela(), escuela.getCodCiudadEscuela().getCodCiudad());
        
        if(objEscuela!=null){
       
        
            throw new Exception("El Nombre de la Escuela ya Existe");
        
        }
        
                
        if(escuela.getNombreEscuela()==null||escuela.getNombreEscuela().equals("")){
            
            throw new Exception("El Nombre no puede ser Vacio");
            
        }
        
         if(escuela.getCodEscuela()==null||escuela.getCodEscuela()==0){
            
            throw new Exception("Debe de Proporcionarse un codigo para identificar la Escuela");
            
        }
         
         if(escuela.getCodCiudadEscuela().getCodCiudad()==null||escuela.getCodCiudadEscuela().getCodCiudad()==0){
            
            throw new Exception("debe de proporcionarse una Ciudad a la que pertenece la Escuela");
            
        }
         
         iDAOescuela.modificarEscuela(escuela);
        
    }

    @Override
    public Escuela buscarEscuelaPorNombre(String nombre, Long IdCiudad) throws Exception {
        
        if(nombre==null||nombre.equals("")) {
           
           throw new Exception("Ingrese Un nombre Para realizar la busqueda");
           
       }
        
        return iDAOescuela.buscarEscuelaPorNombre(nombre, IdCiudad);
        
    }

    @Override
    public Escuela buscarEscuelaPorID(Long IdEscuela) throws Exception {
        
        if(IdEscuela==null||IdEscuela==0) {
           
           throw new Exception("Ingrese Un Id Para realizar la busqueda");
           
       }
        
        return iDAOescuela.buscarEscuelaPorID(IdEscuela);
        
    }

    @Override
    public List<Escuela> escuelas() throws Exception {
        
        return iDAOescuela.escuelas();
        
    }
    
}
